import { T_srv, Tsrv, ifs, ts, vue } from '@/services';
import G6 from '@antv/g6';
import { GraphOptions } from '@antv/g6-core/lib/types';
import { N_openGraphData } from './types';

// const getGridOpt = (obj: any) => {
//   return {
//     // 边框 default（默认）, full（完整边框）, outer（外边框）, inner（内边框）, none（无边框）
//     border: true,
//     // 斑马纹
//     stripe: true,
//     // round: true,

//     data: [],
//     pagerConfig: {
//       pageSize: 10,
//       autoHidden: false,
//       pageSizes: [5, 10, 15, 20, 50, 100, 200, 500, 1000]
//     },
//     toolbarConfig: {
//       size: 'mini',
//       refresh: {
//         query: obj.loadData
//       },
//       zoom: true,
//       custom: {
//         immediate: true,
//         isFooter: false
//       }
//     },
//     seqConfig: {
//       startIndex: 1
//     },
//     rowConfig: {
//       keyField: 'id',
//       isCurrent: true,
//       isHover: true
//     },
//     columnConfig: {
//       // 每列最小宽度
//       minWidth: '60px',
//       isCurrent: true,
//       isHover: true,
//       resizable: true
//     },
//     filterConfig: {
//       remote: true
//     },
//     columns: [
//       // {
//       //   field: 'id',
//       //   title: 'ID',
//       //   sortable: true
//       // },
//       // {
//       //   field: 'code',
//       //   title: '编号',
//       //   sortable: true
//       // },
//       // {
//       //   field: 'name',
//       //   title: '名称',
//       //   width: 120,
//       //   sortable: true
//       // },
//       // {
//       //   field: 'version',
//       //   title: '版本号',
//       //   width: 80,
//       //   sortable: true
//       // },
//       // {
//       //   field: 'confirm',
//       //   title: '有效码',
//       //   sortable: true
//       // },
//       // {
//       //   field: 'state',
//       //   title: '状态',
//       //   visible: true,
//       //   sortable: true
//       // },
//       // {
//       //   field: 'classify',
//       //   title: '适用产品类'
//       // },
//       // {
//       //   field: 'createTime',
//       //   title: '建档时间',
//       //   width: 160,
//       //   visible: true,
//       //   sortable: true
//       // },
//       // {
//       //   field: 'biller',
//       //   title: '资料建立者',
//       //   width: 160,
//       //   visible: true,
//       //   sortable: true
//       // },
//       // {
//       //   field: 'lastModifyUser',
//       //   title: '最近修改人',
//       //   width: 160,
//       //   visible: true,
//       //   sortable: true
//       // },
//       // {
//       //   field: 'lastModifyTime',
//       //   title: '最近修改时间',
//       //   width: 160,
//       //   visible: true,
//       //   sortable: true
//       // }
//     ]
//   };
// };

const graphCfg = (): GraphOptions => {
  return {
    container: '',
    height: 400,
    width: 300,
    // Boolean，可选，切换布局时是否使用动画过度
    animate: false,
    // 设置为true，启用 redo & undo 栈功能
    enabledStack: true,
    // redo & undo 最大步数, 只有当 enabledStack 为 true 时才起作用，该配置项 V3.6 及以上版本支持。
    maxStep: 100,
    renderer: 'canvas', // svg | canvas 默认canvas
    // 开启画布自适应
    fitView: true,
    fitViewPadding: 100,
    modes: {
      // 支持的 behavior
      default: ['drag-canvas', 'zoom-canvas']
    }

    // 不自动布局，在graphToolbar.ts中外挂布局 这样保存的数据在打开时由于自动布局导致位置变化
    // layout: {
    //   type: 'rule-tree-layout',
    //   // 节点的最大宽度
    //   maxNodeWidth: 100,
    //   // 节点之间距离
    //   nodeDisX: 200,
    //   nodeDisY: 200
    // }
  };
};

export {
  G6,
  GraphOptions,
  N_openGraphData,
  T_srv,
  Tsrv,
  graphCfg,
  ifs,
  ts,
  vue
};
